<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据类型</title>
    <script>
        // 1、JavaScript 不区分整数和小数，都是数值类型
        // console 是可以直接使用的内置对象，代表浏览器的控制台
        // console.log() 就是在浏览器控制台打印指定信息
        // 浏览器控制台在开发者工具中
        // typeof 是查看数据类型的运算符
        console.log(typeof 100);
        console.log(typeof 100.55);

        // 2、JavaScript 不区分字符和字符串，统一都是字符串类型
        // 可以使用单引号或者双引号
        console.log(typeof 'hello');
        console.log(typeof "a");

        // 3、JavaScript 中其它数据类型在有需要时（例如：if 语句）会自动转换为布尔类型
        // 空字符串、空对象、空数组、0、NaN、null、undefined 会被转换为 false
        // 非空字符串、非空对象、非空数组、非0数值会被转换为 true
        if ("false") {
            console.log("[测试非空字符串]if 分支");
        } else {
            console.log("[测试非空字符串]else 分支");
        }

        if ("") {
            console.log("[测试空字符串]if 分支");
        } else {
            console.log("[测试空字符串]else 分支");
        }

        if (100) {
            console.log("[测试非零数值（正数）]if 分支");
        } else {
            console.log("[测试非零数值（正数）]else 分支");
        }

        if (-100) {
            console.log("[测试非零数值（负数）]if 分支");
        } else {
            console.log("[测试非零数值（负数）]else 分支");
        }

        if (0) {
            console.log("[测试为零数值]if 分支");
        } else {
            console.log("[测试为零数值]else 分支");
        }

        // 4、特殊值
        // 声明一个变量但是没有赋值，那么它的值就是 undefined
        let stuName;
        console.log(stuName);

        // NaN：Not a Number，不是数值
        let score = "100" / 2; // 因为要进行数学运算，"100" 可以自动转换为数值类型
        console.log(score)

        score = "aaa" / 2; // 因为要进行数学运算，"aaa" 不能转换为数值类型
        console.log(score)

    </script>
</head>
<body>

</body>
</html>